var temp_arr; var cache_output; var cache_words; var cache_phrases; var cache_temp_arr = [] var count_w = 0; $(document).ready(function(){ // fetch('text.txt') // .then(response => response.text()) // .then(text => $('#inputData').val(text)); var arr = []; var amz_icon = ''; var trslt_icon = ''; var arrow = '\ \ \ \ '; var link_arrow = '' + arrow + ''; //Button Start onClick $('#start').on('click', function(){ $('#output').empty(); $('#history').empty(); $('#phrases').empty(); arr = $('#inputData').val().split('\n'); let unq = []; $.each(arr, (i, el) =>{ if ($.inArray(el, unq) === -1) { el = el.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); unq.push(el); }; }) temp_arr = unq.slice(0); let count = arr.length; let diff = arr.length; arr = unq.slice(0); diff -= arr.length; let closeButton = ''; $('#excess-data').val().split('\n').forEach((item) =>{ if(item){ let re = new RegExp('(\\s|^)+' + item.trim() + '+(\\s|$)', 'gm'); arr.forEach((str, index) =>{ if(str.search(re) != -1){ arr.splice(index, 1, ""); let link = 'https://www.amazon.com/s/?url=search-alias%3Daps&field-keywords=' + str.replace(/\s/g, '+'); let link_translate = 'https://translate.google.com/?hl=ru#en/ru/' + str; let translate_module = '' + trslt_icon + ''; $('#phrases').append(''); // $('#phrases').append('') } }) $('#history').append(''); // $('#history').append(''); } }) arr.forEach(function(str, index){ if(str != ""){ let link = 'https://www.amazon.com/s/?url=search-alias%3Daps&field-keywords=' + str.replace(/\s/g, '+'); let link_translate = 'https://translate.google.com/?hl=ru#en/ru/' + str; let translate_module = '' + trslt_icon + ''; var line = ''; $('#output').append(line); } }); $(this).prop("disabled",true); $('#inputData').prop("disabled", true); $('#excess-data').prop("disabled", true); $('#input-block .trash').prop("disabled", true); // $(this).attr('disabled', '1'); $('#input-block .badge').text(count + ' ('+ diff +')'); let col_output = $('#output li').length; $('#output-block h3 span').text(col_output); let col_words = $('#history li').length; $('#words-block h3 span').text(col_words); let col_phrases = $('#phrases li').length; $('#phrases-block h3 span').text(col_phrases); cache_output = $('#output li'); }); let idx_del = -1; let searchWordShift = []; // Delete alone words $('#alone').click(function(){ cache_output = $('#output li'); let t = []; arr.forEach(function(el){ if(el.split(' ').length > 1){ t.push(el); } }) arr = t.slice(0); $('#output').empty(); temp_arr = arr.slice(0); arr.forEach(function(str, index){ if(str != ""){ let link = 'https://www.amazon.com/s/?url=search-alias%3Daps&field-keywords=' + str.replace(/\s/g, '+'); let link_translate = 'https://translate.google.com/?hl=ru#en/ru/' + str; let translate_module = '' + trslt_icon + ''; var line = ''; $('#output').append(line); } }); let col_output = $('#output li').length; $('#output-block h3 span').text(col_output); $('#alone').prop("disabled", true); }); // Clear searchWord $(document).keyup((event) =>{ if(event.keyCode == 17 || event.wich == 17){ let searchWord = searchWordShift.slice(0); let closeButton = ''; let style = ''; let sel = 'false'; let deleteArr = []; if (count_w != 0){ style = 'style="font-weight: bold"'; sel = 'true'; } if(idx_del !== -1){ $.each(searchWord, (idx, elem)=>{ $('#history').append(''); for(var i=0; i' + trslt_icon + ''; $('#phrases').append(''); if(idx_del != i){ deleteArr.push(i); } else{ temp_arr.splice(i, 1, ""); } } } deleteArr.reverse(); deleteArr.forEach(function(item){ $('li.' + item.toString()).remove(); temp_arr.splice(item, 1, ""); }); }); $('li.' + idx_del.toString()).remove(); idx_del = -1; } searchWordShift = []; } if(event.keyCode == 16 || event.wich == 16){ let searchWord = searchWordShift.join(' '); let closeButton = ''; let style = ''; let sel = 'false'; let deleteArr = []; if (count_w != 0){ style = 'style="font-weight: bold"'; sel = 'true'; } if (searchWord.length > 0){ $('#history').append(''); for(var i=0; i' + trslt_icon + ''; $('#phrases').append(''); deleteArr.push(i); } } deleteArr.reverse(); deleteArr.forEach(function(item){ $('li.' + item.toString()).remove(); temp_arr.splice(item, 1, ""); }); searchWordShift = []; } } let col_output = $('#output li').length; $('#output-block h3 span').text(col_output); let col_words = $('#history li').length; $('#words-block h3 span').text(col_words); let col_phrases = $('#phrases li').length; $('#phrases-block h3 span').text(col_phrases); }) //Output wordsClick $('#output').on('click', 'li span', function(event){ cache_output = $('#output li'); cache_words = $('#history li'); cache_phrases = $('#phrases li'); cache_temp_arr = temp_arr.slice(0); let deleteArr = []; idx_del = -1; let searchWord = []; // let searchWordShift = ''; let closeButton = ''; let style = ''; let sel = 'false'; if (count_w != 0){ style = 'style="font-weight: bold"'; sel = 'true'; } if(event.ctrlKey){ searchWordShift.push($(this).text().trim()); let cls_ = $(this).closest('li').attr('class'); cls_ = cls_.split(' '); idx_del = cls_[2]; } else if (event.shiftKey){ let cls_ = $(this).closest('li').attr('class'); cls_ = cls_.split(' '); idx_del = cls_[2]; searchWordShift.push($(this).text().trim()); } else{ searchWord.push($(this).text().trim()); $.each(searchWord, (idx, elem)=>{ $('#history').append(''); for(var i=0; i' + trslt_icon + ''; $('#phrases').append(''); if(idx_del != i){ deleteArr.push(i); } else{ temp_arr.splice(i, 1, ""); } } } deleteArr.reverse(); deleteArr.forEach(function(item){ $('li.' + item.toString()).remove(); temp_arr.splice(item, 1, ""); }); }); } let col_output = $('#output li').length; $('#output-block h3 span').text(col_output); let col_words = $('#history li').length; $('#words-block h3 span').text(col_words); let col_phrases = $('#phrases li').length; $('#phrases-block h3 span').text(col_phrases); }) function onlyUnique(value, index, self) { return self.indexOf(value) === index; } // Return words $('#history').on('close.bs.alert', '.alert', function(){ cache_output = $('#output li'); cache_words = $('#history li'); cache_phrases = $('#phrases li'); let text = $(this).text().substring(0, $(this).text().length - 1); let arrPhrases = $('#phrases .alert[key*="trnsf"]'); let arrHistory = $('#history .alert'); let start_arr = $('#inputData').val().split('\n'); start_arr = start_arr.filter(onlyUnique); arrPhrases.each((idx, el)=>{ start_arr.splice(+$(el).attr('key').split(' ')[0], 1, ""); }); $.each(arrHistory, (index, item) => { let searchWord = $(item).text().substring(0, $(item).text().length-1); if (searchWord != text){ let re = new RegExp('(\\s|^)+' + searchWord + '+(\\s|$)', 'gm'); $.each(start_arr, (index, elem) => { if(elem.search(re) != -1){ start_arr.splice(index, 1, "") } }) } }) let check_arr = []; $('#output li').each((idx, el) =>{ if ($(el).find('.close input[type="checkbox"]').is(':checked')){ // console.log($(el).attr('class').split(' ')); check_arr.push($(el).attr('class').split(' ')[2]); } }); $('#output').empty(); start_arr.forEach(function(str, index){ if (str != ""){ let link = 'https://www.amazon.com/s/?url=search-alias%3Daps&field-keywords=' + str.replace(/\s/g, '+'); let link_translate = 'https://translate.google.com/?hl=ru#en/ru/' + str; let translate_module = '' + trslt_icon + ''; var line = '
  • ' +amz_icon + '' + translate_module + '
    '; let words = str.split(' '); words.forEach(elem => { line += ''+elem+' ' + ''; }) let chk = ''; check_arr.forEach(function(el){ if(el == index.toString()){ chk = ' checked'; } }) line +=' ' + link_arrow + '
  • '; $('#output').append(line); } }); $('#phrases .alert[keyword="'+text+'"]').remove(); temp_arr = start_arr.slice(0); let col_output = $('#output li').length; $('#output-block h3 span').text(col_output); let col_words = $('#history li').length - 1; $('#words-block h3 span').text(col_words); let col_phrases = $('#phrases li').length; $('#phrases-block h3 span').text(col_phrases); }); // Return Phrases $('#phrases').on('close.bs.alert', '.alert', function(){ cache_output = $('#output li'); cache_words = $('#history li'); cache_phrases = $('#phrases li'); let text = $(this).text().substring(0, $(this).text().length - 1); let idx = $(this).attr('key'); let link = 'https://www.amazon.com/s/?url=search-alias%3Daps&field-keywords=' + text.replace(/\s/g, '+'); let link_translate = 'https://translate.google.com/?hl=ru#en/ru/' + text; let translate_module = '' + trslt_icon + ''; let line = '
  • ' + amz_icon + ''+translate_module+'
    '; text.split(' ').forEach(item => { line += '' + item + ' ' + ''; }) line += ' ' + link_arrow + '
  • '; $('#output').append(line); temp_arr.splice(idx, 1, text); let col_output = $('#output li').length; $('#output-block h3 span').text(col_output); let col_phrases = $('#phrases li').length - 1; $('#phrases-block h3 span').text(col_phrases); }) function count(){ let col_output = $('#output li').length; $('#output-block h3 span').text(col_output); let col_words = $('#history li').length; $('#words-block h3 span').text(col_words); let col_phrases = $('#phrases li').length; $('#phrases-block h3 span').text(col_phrases); } // Copy Output $('#output-block').on('click', '.btn', function(){ let output_data = $('#output li'); let line = ''; $.each(output_data, (index, item) => { item = $(item).text().replace(/^\s\s*/, '').replace(/\s\s*$/, ''); line += item + '\r\n'; }) var $temp = $("